]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
extensions: Provide separate implementations
authorFlorian Müllner <fmuellner@gnome.org>
Sat, 1 Jul 2023 00:11:37 +0000 (02:11 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 15 Jul 2023 11:16:42 +0000 (13:16 +0200)
For the time being this mostly means re-exporting functions
from the shared module. However openPrefs() is now only
available to extensions, and we stop exporting both
getCurrentExtension() and setExtensionManager() to either
extensions or prefs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2837>

js/dbusServices/org.gnome.Shell.Extensions.src.gresource.xml
js/extensions/extension.js [new file with mode: 0644]
js/extensions/prefs.js [new file with mode: 0644]
js/extensions/sharedInternals.js
js/js-resources.gresource.xml

index 51042f933656597fa9db0b6db9b30e03939a12c2..55be1d199b2da6c2a20a72d8ea2d2a96741549c5 100644 (file)
@@ -7,6 +7,7 @@
     <file>dbusService.js</file>
 
     <file>extensions/sharedInternals.js</file>
+    <file>extensions/prefs.js</file>
 
     <file>misc/config.js</file>
     <file>misc/extensionUtils.js</file>
diff --git a/js/extensions/extension.js b/js/extensions/extension.js
new file mode 100644 (file)
index 0000000..125b7a3
--- /dev/null
@@ -0,0 +1,28 @@
+import {getCurrentExtension} from './sharedInternals.js';
+
+export {
+    getSettings,
+    initTranslations,
+    gettext,
+    ngettext,
+    pgettext
+} from './sharedInternals.js';
+
+/**
+ * Open the preference dialog of the current extension
+ */
+export function openPrefs() {
+    const extension = getCurrentExtension();
+
+    if (!extension)
+        throw new Error('openPrefs() can only be called from extensions');
+
+    try {
+        const extensionManager = imports.ui.main.extensionManager;
+        extensionManager.openExtensionPrefs(extension.uuid, '', {});
+    } catch (e) {
+        if (e.name === 'ImportError')
+            throw new Error('openPrefs() cannot be called from preferences');
+        logError(e, 'Failed to open extension preferences');
+    }
+}
diff --git a/js/extensions/prefs.js b/js/extensions/prefs.js
new file mode 100644 (file)
index 0000000..405b861
--- /dev/null
@@ -0,0 +1,7 @@
+export {
+    getSettings,
+    initTranslations,
+    gettext,
+    ngettext,
+    pgettext
+} from './sharedInternals.js';
index 0be5dfb55c56c50875ee88868e8cabe00334a7ed..c2133936c07078c0fd4414d1c97a6f4c7f80a8d7 100644 (file)
@@ -177,22 +177,3 @@ export function getSettings(schema) {
 
     return new Gio.Settings({settings_schema: schemaObj});
 }
-
-/**
- * Open the preference dialog of the current extension
- */
-export function openPrefs() {
-    const extension = getCurrentExtension();
-
-    if (!extension)
-        throw new Error('openPrefs() can only be called from extensions');
-
-    try {
-        const extensionManager = imports.ui.main.extensionManager;
-        extensionManager.openExtensionPrefs(extension.uuid, '', {});
-    } catch (e) {
-        if (e.name === 'ImportError')
-            throw new Error('openPrefs() cannot be called from preferences');
-        logError(e, 'Failed to open extension preferences');
-    }
-}
index 419ca024fc15125f6e716fb750efb78599a3b268..93d612cc52f23930a47daf36696d752063948e07 100644 (file)
@@ -12,6 +12,7 @@
     <file>gdm/util.js</file>
 
     <file>extensions/sharedInternals.js</file>
+    <file>extensions/extension.js</file>
 
     <file>misc/animationUtils.js</file>
     <file>misc/config.js</file>